//////////////////////////////////////////////////////////////////////////
#pragma once
#pragma managed
//////////////////////////////////////////////////////////////////////////
using namespace System;
using namespace System::Runtime::InteropServices;
//////////////////////////////////////////////////////////////////////////
NAMESPACE_BEGIN
//////////////////////////////////////////////////////////////////////////
/// <summary>
/// MouseCallback
/// </summary>
/// <param name="eventId"></param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="flags"></param>
/// <param name="param"></param>
[UnmanagedFunctionPointerAttribute(CallingConvention::Cdecl)]
public delegate void MouseCallback(WindowEventId eventId, int x, int y, WindowEventFlag flags, IntPtr param);

/// <summary>
/// Win32WindowCallback
/// </summary>
/// <param name="hWnd"></param>
/// <param name="msg"></param>
/// <param name="wPARAM"></param>
/// <param name="lPARAM"></param>
/// <param name="userData"></param>
/// <returns></returns>
[UnmanagedFunctionPointerAttribute(CallingConvention::Cdecl)]
public delegate int Win32WindowCallback(IntPtr hWnd, unsigned int msg, unsigned int wPARAM, unsigned int lPARAM, IntPtr userData);

/// <summary>
/// TrackbarCallback
/// </summary>
/// <param name="pos"></param>
[UnmanagedFunctionPointerAttribute(CallingConvention::Cdecl)]
public delegate void TrackbarCallback(int pos);

/// <summary>
/// TrackbarCallback2
/// </summary>
/// <param name="pos"></param>
/// <param name="userdata"></param>
[UnmanagedFunctionPointerAttribute(CallingConvention::Cdecl)]
public delegate void TrackbarCallback2(int pos, IntPtr userdata);
//////////////////////////////////////////////////////////////////////////
NAMESPACE_END
//////////////////////////////////////////////////////////////////////////